package org.mm4juser.controller;

import jakarta.annotation.Resource;
import org.mm4juser.entity.DTO.MainInfoChangeDTO;
import org.mm4juser.entity.DTO.PwdChangeDTO;
import org.mm4juser.entity.DTO.SecondInfoChangeDTO;
import org.mm4juser.service.UserService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

//iu = InfoUpdate
@RestController
public class InfoUpdateController {
	@Resource
	private UserService userService;
	//登陆凭证修改
	
	/**
	 * 邮箱修改接口
	 *
	 * @param mainInfoChangeDTO DTO (User、新邮箱)
	 */
	@PostMapping("iu/ue")
	public ResponseEntity<?> updateEmail(
		@RequestBody
		MainInfoChangeDTO mainInfoChangeDTO) {
		return userService.changeMainInfo(mainInfoChangeDTO);
	}
	
	/**
	 * 密码修改接口
	 *
	 * @param pwdChangeDTO DTO（邮箱、旧密码、新密码）
	 */
	@PostMapping("iu/up")
	public ResponseEntity<?> updatePassword(
		@RequestBody
		PwdChangeDTO pwdChangeDTO) {
		return userService.forgetOrChangePwd(pwdChangeDTO);
	}
	//非登录凭证修改
	
	/**
	 * 修改用户名
	 *
	 * @param mainInfoChangeDTO DTO（User、新用户名）
	 */
	@PostMapping("iu/uu")
	public ResponseEntity<?> updateUsername(@RequestBody MainInfoChangeDTO mainInfoChangeDTO) {
		return userService.changeMainInfo(mainInfoChangeDTO);
	}
	
	/**
	 * 修改次要信息
	 *
	 * @param secondInfoChangeDTO DTO（新个签、新生日、新性别）
	 */
	@PostMapping("iu/us")
	public ResponseEntity<?> updateSecondInfo(@RequestBody SecondInfoChangeDTO secondInfoChangeDTO) {
		return userService.changeSecondInfo(secondInfoChangeDTO);
	}
}
